package com.example.administrator.android01app;

import android.content.res.Resources;
import android.content.res.TypedArray;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

public class Ch6Activity1 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_ch6_1);

        String content=getString(R.string.btnOk);
        Log.d(Ch6Activity1.class.toString(),content);

        Resources resources=getResources();//得到Resources的实例
        String[] strArr=resources.getStringArray(R.array.strArr);//得到字符串数组
        for(int i=0;i<strArr.length;i++){
            Log.i(Ch6Activity1.class.toString(),strArr[i]);
        }
        int[] intArr=resources.getIntArray(R.array.intArr);//得到整型数组
        for(int i=0;i<intArr.length;i++){
            Log.i(Ch6Activity1.class.toString(),intArr[i]+"");
        }

        //访问TypedArray
        TypedArray typedArray=resources.obtainTypedArray(R.array.commonArray);
        //根据内容的类型，调用 不同的方法
        String typedArrayString=typedArray.getString(0);
        int intVal=typedArray.getInt(1,0);
        Log.i(Ch6Activity1.class.toString(),"typedArrayString:"+typedArrayString);
        Log.i(Ch6Activity1.class.toString(),"intVal:"+intVal);
        //获取数组中对其他资源的引用
        ImageView imageView=(ImageView)findViewById(R.id.ch6_1_iv);
        int resId=typedArray.getResourceId(2,0);
        imageView.setImageResource(resId);

        resId=typedArray.getResourceId(3,0);
        strArr=resources.getStringArray(resId);//得到字符串数组
        for(int i=0;i<strArr.length;i++){
            Log.i(Ch6Activity1.class.toString(),"----TypedArray----"+strArr[i]);
        }

        //在Activity的onCreate()方法中注册上下文菜单
        LinearLayout linearLayout=(LinearLayout)findViewById(R.id.ch6_1_ll);
        registerForContextMenu(linearLayout);
    }
    //重写Activity中的onCreateContextMenu()方法
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        MenuInflater menuInflater=getMenuInflater();//获得菜单加载器
        menuInflater.inflate(R.menu.mymenu,menu);//将设计的菜单资源，转换为Menu对象

    }
    //重写onContextItemSelected ()方法，用于当菜单项被选择时，作出相应的处理。
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        int id=item.getItemId();
        switch (id){
            case R.id.mymenu_item1:
                Toast.makeText(this,"mymenu_item1",Toast.LENGTH_LONG).show();
                break;
            case R.id.mymenu_item2:
                Toast.makeText(this,"mymenu_item2",Toast.LENGTH_LONG).show();
                break;
            case R.id.mymenu_item3:
                Toast.makeText(this,"mymenu_item3",Toast.LENGTH_LONG).show();
                break;
        }
        return true;
    }

    //（1）重写Activity中的onCreateOptionsMenu()方法,作用是加载设计的菜单资源，可以显示到界面上。
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater=getMenuInflater();//获得菜单加载器
        menuInflater.inflate(R.menu.mymenu,menu);//将设计的菜单资源，转换为Menu对象

        return true;
    }

    //（2）重写onOptionsItemSelected()方法，用于当菜单项被选择时，作出相应的处理。


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id=item.getItemId();
        switch (id){
            case R.id.mymenu_item1:
                Toast.makeText(this,"mymenu_item1",Toast.LENGTH_LONG).show();
                break;
            case R.id.mymenu_item2:
                Toast.makeText(this,"mymenu_item2",Toast.LENGTH_LONG).show();
                break;
            case R.id.mymenu_item3:
                Toast.makeText(this,"mymenu_item3",Toast.LENGTH_LONG).show();
                break;
        }
        return true;
    }
}
